/**
 * 神岛React-like 框架 - 入口文件
 * 提供类似 React 的 API 和钩子系统，为神岛 UI 应用提供轻量级组件框架
 */

import { Component } from "./lib/component";
import { createElement } from "./lib/createElement";
import { createRoot, render } from "./lib/renderer";

// 导出所有钩子函数
export * as hooks from "./lib/hooks";

// 导出 JSX 相关类型
export * from "./lib/jsx";

// 导出 UI 组件管理器
export { uiComponentMgr } from "./lib/component";

// 组件记忆化，避免不必要的重新渲染
export { memo } from "./lib/api/memo";

// 将状态更新标记为低优先级
export { startTransition } from "./lib/api/startTransition";

// 转发Ref到子组件的函数
export { forwardRef } from "./lib/api/forwardRef";

// 创建上下文对象
export { createContext } from "./lib/api/createContext";

/**
 * React 兼容层 - 提供与 React API 相似的接口
 * 实现了 React 的核心功能，便于开发者使用熟悉的 API 进行 UI 开发
 */
const React = {
  // 核心功能
  createElement, // 创建虚拟 DOM 元素
  Component, // 类组件基类
  createRoot, // 创建渲染根节点
  render, // 渲染函数

  // 组件类型
  Fragment: "fragment", // Fragment 组件，用于返回多个元素而无需额外包装
};

export default React;
